import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

public class MainMenu extends World {
    MusicPlayer musicPlayer; // 音乐播放器
    public MainMenu() {    
        super(1280, 768, 1); 
        
        // 使用图片替代按钮文字
        addObject(new DifficultyButton("congyu.png", GameWorld.CONGYU, 3, 3), 350, 520);
        addObject(new DifficultyButton("fangnai.png", GameWorld.FANGNAI, 3, 3), 680, 520);
        addObject(new DifficultyButton("mozi.png", GameWorld.MOZI, 3, 3), 1100, 200);
        addObject(new DifficultyButton("ciallo.png",GameWorld.CIALLO,5,5),1100,600);
        
        // 显示提示窗口
        showInfoWindow();
        // 创建音乐播放器并添加到世界
        musicPlayer = new MusicPlayer("YLJY.mp3"); // 替换为你的音乐文件名
        addObject(musicPlayer, 0, 0); // 在世界中添加音乐播放器（位置不影响播放）
    }

    private void showInfoWindow() {
        InfoWindow infoWindow = new InfoWindow("欢迎来到拼图游戏！\n\n" +
                "游戏规则：\n" +
                "1. 使用鼠标左键移动拼图，\n" +
                "2. 使用鼠标右键旋转拼图，\n" +
                "3. 点击对应图片进入对应拼图\n"+
                "4. 完成拼图即可胜利！\n\n" +
                "点击任意地方关闭此提示窗口。\n\n"+
                "（二维码为极难模式，仅作为5x5模式的参考）");
        addObject(infoWindow, getWidth() / 2, getHeight() / 2);
    }
    public void StopPlaySound()
    {
        musicPlayer.stopMusic();
    }
}

// 创建按钮类
class DifficultyButton extends Actor {
    private int name;
    private int height, width;
    
    // 修改构造函数，接受图片地址
    public DifficultyButton(String imageName, int _name, int _height, int _width) {
        name = _name;
        height = _height;
        width = _width;
        
        // 从指定路径加载图片
        setImage(new GreenfootImage(imageName));
    }

    public void act() {
        if (Greenfoot.mouseClicked(this)) {
            Greenfoot.setWorld(new GameWorld(name, height, width,((MainMenu)getWorld()).musicPlayer)); // 进入游戏
        }
    }
    
}


// 创建信息窗口类
class InfoWindow extends Actor {
    private GreenfootImage image;
  
    public InfoWindow(String message) {
        // 创建一个透明背景的图像
        image = new GreenfootImage(600, 400);
        image.setColor(new Color(0, 0, 0, 150)); // 半透明黑色
        image.fill();
        
        // 设置文本颜色和大小
        image.setColor(Color.WHITE);
        image.setFont(new Font("SimSun", false, false, 24)); // 使用支持中文的字体

        // 分行绘制文本以避免乱码
        String[] lines = message.split("\n");
        for (int i = 0; i < lines.length; i++) {
            image.drawString(lines[i], 20, 50 + i * 30); // 每行向下偏移30像素
        }
        
        setImage(image);
    }

    public void act() {
        // 鼠标点击关闭信息窗口
        if (Greenfoot.mouseClicked(this)) {
            getWorld().removeObject(this); // 移除提示窗口
        }
    }
    
}
